package com.kygeng.springframework.beans.factory.config;

import com.kygeng.springframework.beans.BeansException;
import com.kygeng.springframework.beans.factory.ConfigurableListableBeanFactory;

import java.io.IOException;

/**
 * @Title: BeanFactoryPostProcessor
 * @Author: kygeng
 * @Package: com.kygeng.springframework.beans.factory.config
 * @Date: 2024/7/22 13:03
 * @Description: 在所有的 BeanDefinition 加载完成后，实例化 Bean 对象之前，提供修改 BeanDefinition 属性的机制
 */
public interface BeanFactoryPostProcessor {

    /**
     * 在所有的 BeanDefinition 加载完成后，实例化 Bean 对象之前，提供修改 BeanDefinition 属性的机制
     * @param beanFactory
     * @throws BeansException
     */
    void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;

}
